/***************************************************************************
[FileName]
-------------------
    begin                : [FileDate]
    copyright            : by kuzkok
    email                : kuzkok@gmail.com

***************************************************************************
*                                                                         *
*   This program is free software; you can redistribute it and/or modify  *
*   it under the terms of the GNU General Public License as published by  *
*   the Free Software Foundation; either version 2 of the License, or     *
*   (at your option) any later version.                                   *
*   
*   Данная программа является свободным программным обеспечением;         *
*   Вы можете распространять ее и/или модифицировать в соответствии с     *
*   GNU General Public License опубликованной Фондом свободного           *
*   программного обеспечения; используемая версия лицензии - 2 или        *
*   (по вашему выбору) любая более поздняя                                *
***************************************************************************/

#include "treenode.h"

TreeNode::TreeNode(const QString theOid, const QString theLabel, TreeNode *parent)
{
    mObjectID = theOid;
    itemData = theLabel;
    parentItem = parent;  
    mContextMenu = new QMenu();
}

TreeNode::~TreeNode()
{
    qDeleteAll(childItems);
}

void TreeNode::appendChild(TreeNode *child)
{
    childItems.append(child);
}

TreeNode* TreeNode::child(int row)
{
    return childItems.value(row);
}

int TreeNode::childCount() const
{
    return childItems.count();
}

int TreeNode::row() const
{
    if (parentItem)
        return parentItem->childItems.indexOf(const_cast<TreeNode*>(this));
    return 0;
}

int TreeNode::columnCount() const
{
    return 3;// itemData.count();
}

QVariant TreeNode::data(int column) const
{
    switch(column)
    {
    case 0:
        return itemData;
    case 1:
        return mObjectID;
    }
    //return column == 0 ? itemData : "";//.value(column);
    return "";
}

TreeNode *TreeNode::parent()
{
    return parentItem;
}

QMenu *TreeNode::contextMenu()
{
    return mContextMenu;
}

QString TreeNode::objectID()
{
    return mObjectID;
}
